package com.zoe.onelink.annotation.web.arg;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>标题: RequestBody参数解析注解</p>
 * <p>描述: 主要用于兼容旧项目中的写法,解析RequestBody中的参数,将body中的单个字段直接映射到入参变量中</p>
 * <p>版权: Copyright (c) 2021</p>
 * <p>公司: 智业软件股份有限公司</p>
 *
 * @version: 1.0
 * @author: ruansheng
 * @date: 2021-11-01
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequestArg {

    @AliasFor("fieldName")
    String value() default "";

    @AliasFor("value")
    String fieldName() default "";

    /**
     * 默认值
     */
    String defaultValue() default "";

    /**
     * 是否嵌套
     */
    boolean nested() default true;

}
